home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / basic / pbasmlib.zip / MOUSE.DOC < prev    next >
Text File  |  1994-02-12  |  23KB  |  680 lines

  1. PBASMLIB Assembly Language Routines for PB3C
  2. Version 1.0
  3. Mouse Driver Interface Routines (MOUSE.ASM)
  4. (C) Copyright 1994 by Tim Gerchmez
  5. All Rights Reserved.
  6.  
  7. This module contains routines that interface you to the mouse driver
  8. and allow you to add mouse control to your programs.  You need to have
  9. a mouse driver loaded to use these routines (use MRESET to check for its
  10. presence), and the routines will be immediately accessible to your programs
  11. by including the statements $INCLUDE "PBASMLIB.INC" and $LINK "PBASMLIB.PBL"
  12. at the top of your programs.
  13.  
  14. ================================================================================
  15. FUNCTION mattr%
  16.  
  17. Returns the attribute at the mouse cursor position in text mode.
  18. This will vary depending on what attribute the mouse cursor
  19. is currently "on top of" (foreground/background colors), so can
  20. be used to test for certain attributes at different locations.
  21. To test for what's UNDER the mouse cursor, turn it off first with
  22. MHIDE.  Make sure driver exists and is activated before calling.
  23.  
  24. mattr%: Returns attribute value at mouse cursor y/x location
  25.         (0-255).
  26.  
  27. Example: print mattr%
  28.  
  29. ================================================================================
  30. FUNCTION mchar$
  31.  
  32. Returns the character at the mouse cursor's position in
  33. text mode.  If the screen/cursor mask has been changed, turn
  34. the mouse cursor off first to find what's UNDER the mouse cursor.
  35. Make sure driver exists and is activated before calling.
  36.  
  37. mchar$: Returns single ASCII character at mouse cursor's
  38.         current y/x location on visible screen page.
  39.  
  40. Example: a$ = mchar$
  41.  
  42. ================================================================================
  43. SUB mcheck(lb%,rb%,mb%,y%,x%)
  44.  
  45. Returns mouse buttons pressed and text coordinates
  46. of mouse cursor.  To return graphics coordinates, use
  47. MGRAPHCHECK instead.
  48.  
  49. lb%: Returns 1 if left button pressed, 0 if not
  50. rb%: Returns 1 if right button pressed, 0 if not
  51. mb%: Returns 1 if middle button pressed (Mouse Systems/
  52.      Logitech mouse), or 0 if not
  53. y%: Returns y coordinate (row) of mouse cursor (1-25)
  54. x%: Returns x coordinate (column) of mouse cursor (1-80)
  55.  
  56. Example: call mcheck(lb%,rb%,mb%,y%,x%)
  57.  
  58. ================================================================================
  59. SUB mclear
  60.  
  61. Resets the mouse driver, turning the mouse cursor off
  62. and resetting the internal SHOW/HIDE flag.
  63. Use when you get confused after multiple MSHOW/MHIDE
  64. commands, or to take the mouse out of strange modes.
  65. Does not change position of mouse cursor.
  66. A single MSHOW after an MCLEAR will show the mouse
  67. cursor at any time.
  68.  
  69. Example: CALL mclear
  70.  
  71. ================================================================================
  72. SUB mclearpen
  73.  
  74. Turns mouse light-pen emulation mode OFF.
  75.  
  76. Example: call mclearpen
  77.  
  78. ================================================================================
  79. FUNCTION mcsrlin
  80.  
  81. Similar to CSRLIN, but returns Y location of the mouse
  82. cursor instead of the normal screen cursor.  Text mode only.
  83.  
  84. Example: print mcsrlin
  85.  
  86. ================================================================================
  87. SUB mdisable
  88.  
  89. Disables the mouse driver.  Use MENABLE to re-enable.
  90.  
  91. Example: CALL mdisable
  92.  
  93. ================================================================================
  94. SUB menable
  95.  
  96. Enables the mouse driver after disabling with MDISABLE.
  97.  
  98. Example: CALL menable
  99.  
  100. ================================================================================
  101. SUB mgetaltroutine(mask%,sg??,ofs??)
  102.  
  103. Attempts to find a user event handler defined by
  104. MSETALTROUTINE whose call mask matches mask%.
  105.  
  106. mask%: Set to call mask to search for.  Returns same
  107.        call mask in mask% if found, or 0 in mask% if
  108.        not found.
  109. sg??: Returns segment of user event handler, if found
  110. ofs??: Returns offset of user event handler, if found
  111.  
  112. Example: mask%=1:mgetaltroutine mask%,sg??,ofs??
  113.  
  114. ================================================================================
  115. SUB mgethotspot(counter%,hsy%,hsx%,tpe%)
  116.  
  117. MS Mouse V7.02+ only - get mouse cursor hot spot
  118. row and column, internal mouse visibility flag, and
  119. mouse type.
  120.  
  121. counter%: Returns internal mouse visibility flag
  122. hsy%: Returns cursor hot spot vertical row (Y)
  123. hsx%: Returns cursor hot spot horizontal column (X)
  124. tpe%: Returns mouse type (0=none, 1=bus, 2=serial,
  125.       3=InPort, 4=IBM, 5=Hewlett-Packard)
  126.  
  127. Example: mgethotspot c%,y%,x%,t%
  128.  
  129. ================================================================================
  130. FUNCTION mgetinfo(mv%,mn%,tpe%,intrpt%)
  131.  
  132. MS Mouse V6.26+ only - returns information on mouse driver.
  133.  
  134. mv%: Returns major version number (-1 if error) (the "8" in "8.1")
  135. mn%: Returns minor (revision) number (the "1" in "8.1"
  136. tpe%: Returns mouse type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
  137. intrpt%: Returns interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7)
  138.  
  139. Example: mgetinfo mv%,mn%,tpe%,intrpt%
  140.  
  141. ================================================================================
  142. SUB mgetmasks(smv??,cmv??,vmc%,hmc%)
  143.  
  144. MS Mouse V7.01+ only - Get screen and cursor masks and
  145. horizontal/vertical mickey counts
  146.  
  147. smv??: Returns screen mask value (or hardware scan line start
  148.        if MS Mouse V7.02+)
  149. cmv??: Returns cursor mask value (or hardware scan line end
  150.        if MS Mouse V7.02+)
  151. vmc%: Returns vertical mickeys moved since last call (Y)
  152. hmc%: Returns horizontal mickeys moved since last call (X)
  153.  
  154. Example: call mgetmasks(s??,c??,v%,h%)
  155.  
  156. ================================================================================
  157. SUB mgetmaxvirtual(mdf%,mvy%,mvx%)
  158.  
  159. MS Mouse V6.26+ only - Gets maximum virtual coordinates
  160. (defined with MXRANGE/MYRANGE and related commands).
  161. To convert to text-mode values, divide by 8 and add 1.
  162.  
  163. mdf%: Returns mouse-disabled flag
  164. mvy%: Returns maximum virtual Y coordinate
  165. mvx%: Returns maximum virtual X coordinate (current video mode)
  166.  
  167. Example: mgetmaxvirtual mdf%,mvy%,mvx%
  168.  
  169. ================================================================================
  170. SUB mgetpos(y%,x%)
  171.  
  172. Gets the position of the mouse cursor on the screen in
  173. text mode.  For graphics modes, use MGRAPHGETPOS instead.
  174. If button data is needed, use MCHECK instead
  175.  
  176. y%: Returns y coordinate (row) of mouse cursor (1-25)
  177. x%: Returns x coordinate (column) of mouse cursor (1-80)
  178.  
  179. Example: mgetpos y%,x%
  180.  
  181. ================================================================================
  182. SUB mgetspeed(nh%,nv%,mps%)
  183.  
  184. Gets the mouse driver's speed parameters.
  185.  
  186. nh%: Returns number of mickeys per 8 pixels horizontally
  187.      (see MSETSPEED)
  188. nv%: Returns number of mickeys per 8 pixels vertically
  189.      (see MSETSPEED)
  190. mps%: Returns double-speed threshold in mickeys per second
  191.      (see MSETDST)
  192.  
  193. Example: CALL mgetspeed(nh%,nv%,mps%)
  194.  
  195. ================================================================================
  196. SUB mgetvirtual(miny%,minx%,maxy%,maxx%)
  197.  
  198. MS Mouse V7.05+ only - get mouse cursor virtual coordinates
  199. (set with MXRANGE/MYRANGE and related commands).
  200. To convert to text-mode values, divide by 8 and add 1.
  201.  
  202. miny%: Returns virtual Y minimum value
  203. minx%: Returns virtual X minimum value
  204. maxy%: Returns virtual Y maximum value
  205. maxx%: Returns virtual X maximum value
  206.  
  207. Example: mgetvirtual my%,mx%,xy%,xx%
  208. ================================================================================
  209. SUB mgraphbigdef(cw%,rw%,yh%,xh%,s$)
  210.  
  211. Sets a large graphics cursor block for graphics modes
  212. (see MS mouse programmer's reference and MGRAPHDEFINE
  213. for info).
  214.  
  215. cw%: Set to cursor width in words (0-255)
  216. rw%: Set to rows in cursor (0-255)
  217. yh%: Set to vertical "hot spot" (-16 to 16)
  218. xh%: Set to horizontal "hot spot" (-16 to 16)
  219. s$: Set to bit map of screen and cursor maps
  220.  
  221. Example: mgraphbigdef cw%,rw%,yh%,xh%,s$
  222.  
  223. ================================================================================
  224. SUB mgraphcheck(lb%,rb%,mb%,y%,x%)
  225.  
  226. Returns mouse buttons pressed and graphics coordinates
  227. of mouse cursor.  To find text coordinates instead, use
  228. MCHECK.
  229.  
  230. lb%: Returns Left Button Status (1=pressed, 0=no)
  231. rb%: Returns Right Button Status (1=pressed, 0=no)
  232. mb%: Returns Middle Button Status (1=pressed, 0=no)
  233. y%: Returns y coordinate (row) of mouse cursor
  234. x%: Returns x coordinate (column) of mouse cursor
  235.  
  236. Example: mgraphcheck lb%,rb%,mb%,y%,x%
  237.  
  238. ================================================================================
  239. SUB mgraphdefine(yh%,xh%,bitmap$)
  240.  
  241. Defines a shape for the graphics mouse cursor.
  242.  
  243. yh%: Set to row of cursor hot spot (-16 to 16)
  244. xh%: Set to column of cursor hot spot (-16 to 16)
  245. bitmap$: Set to bitmap consisting of a 16-word screen
  246.          mask and a 16-word cursor mask in string form
  247.          (see MS mouse programmer's reference guide or
  248.           other similar docs).
  249.  
  250. Example: mgraphdefine yh%,xh%,bitmap$
  251.  
  252. ================================================================================
  253. SUB mgraphgetpos(y%,x%)
  254.  
  255.  
  256. Gets the position of the mouse cursor on the screen in
  257. graphics modes.  For text mode, use MGETPOS instead.
  258. If button data is needed, use MGRAPHCHECK instead
  259.  
  260. y%: Returns y coordinate of mouse cursor
  261. x%: Returns x coordinate of mouse cursor
  262.  
  263. Example: mgraphgetpos y%,x%
  264.  
  265. ================================================================================
  266. SUB mgraphsetpos(y%,x%)
  267.  
  268. Sets the position of the mouse cursor on the screen in
  269. graphics modes.  For text mode, use MSETPOS instead.
  270.  
  271. y%: Set to new y coordinate desired
  272. x%: Set to new x coordinate desired
  273.  
  274. Example: mgraphsetpos 80,135
  275.  
  276. ================================================================================
  277. SUB mhide
  278.  
  279. Decrements the internal mouse cursor flag, hiding the mouse
  280. cursor if the flag goes below zero.  Multiple calls to
  281. mhide will require multiple calls to MSHOW to show the cursor
  282. again.  The mouse cursor is visible when the internal flag is
  283. zero or above, and invisible when the flag is below zero.
  284.  
  285. Example: mhide [or] call mhide
  286.  
  287. ================================================================================
  288. FUNCTION mlanguage
  289.  
  290. Returns current language setting for international version
  291. of the mouse driver.  U.S. version always returns 0.
  292. See MSETLANGUAGE for language values.
  293.  
  294. Example: print mlanguage
  295.  
  296. ================================================================================
  297. FUNCTION mleftbutton
  298.  
  299. Returns 1 if left mouse button is pressed, 0 if not.
  300.  
  301. Example: if mleftbutton=1 then print "Left Button Pressed"
  302.  
  303. ================================================================================
  304. FUNCTION mlpresses
  305.  
  306. Returns number of times left mouse button was pressed
  307. since this function was last called.
  308.  
  309. Example: sleep 5:print mlpresses
  310.  
  311. ================================================================================
  312. FUNCTION mlreleases
  313.  
  314. Returns number of times left mouse button was released
  315. since this function was last called.
  316.  
  317. Example: sleep 5:print mlreleases
  318.  
  319. ================================================================================
  320. FUNCTION mmidbutton
  321.  
  322. Returns 1 if middle mouse button pressed, 0 if not.
  323.  
  324. Example: a% = mmidbutton
  325.  
  326. ================================================================================
  327. FUNCTION mmpresses
  328.  
  329. Returns number of times middle mouse button was pressed
  330. since this function was last called.
  331.  
  332. Example: sleep 5:print mmpresses
  333.  
  334. ================================================================================
  335. FUNCTION mmreleases
  336.  
  337. Returns number of times middle mouse button was released
  338. since this function was last called.
  339.  
  340. Example: sleep 5:print mmreleases
  341.  
  342. ================================================================================
  343. SUB moffarea(uly%,ulx%,lry%,lrx%)
  344.  
  345. Defines an area for screen updating in text mode.  If the mouse
  346. cursor enters this area it will be turned off, and must be
  347. explicitly turned on again with MSHOW.  For graphics modes,
  348. use MOFFGRAPHAREA.
  349.  
  350. uly%: Set to upper left y position (1-25)
  351. ulx%: Set to upper left x position (1-80)
  352. lry%: Set to lower right y position (1-80)
  353. lrx%: Set to lower right x position (1-80)
  354.  
  355. Example: moffarea 10,10,15,15 'Defines "turnoff" area
  356.  
  357. ================================================================================
  358. SUB moffgrapharea(uly%,ulx%,lry%,lrx%)
  359.  
  360. Defines an area for screen updating in graphics modes.  If
  361. the mouse enters this area it will be turned off, and must
  362. be explicitly turned on again with MSHOW.  For text modes,
  363. use MOFFAREA.
  364.  
  365. uly%: Set to upper left y coordinate of update area
  366. ulx%: Set to upper left x coordinate of update area
  367. lry%: Set to lower right y coordinate of update area
  368. lrx%: Set to lower right x coordinate of update area
  369.  
  370. Example: moffgrapharea 100,110,105,120
  371.  
  372. ================================================================================
  373. FUNCTION mpage
  374.  
  375. Returns the page the mouse cursor is currently displayed on.
  376.  
  377. mpage: Returns page number
  378.  
  379. Example: print mpage
  380.  
  381. ================================================================================
  382. FUNCTION mpos(x%)
  383.  
  384. Similar to POS(0), except returns X location of the mouse cursor
  385. instead of the normal screen cursor.  Text mode only.
  386.  
  387. x%: Set to dummy argument (normally 0)
  388.  
  389. Example: print mpos(0)
  390.  
  391. ================================================================================
  392. SUB mreadcounters(hmickeys%,vmickeys%)
  393.  
  394. Returns number of horizontal and vertical mickeys
  395. mouse was moved since the last call to this routine.
  396. A mickey is the smallest increment the mouse can sense.
  397. Positive values indicate down/right movement.
  398.  
  399. hmickeys%: Returns horizontal mickeys mouse was moved
  400. vmickeys%: Returns vertical mickeys mouse was moved
  401.  
  402. Example: mreadcounters hm%,vm%
  403.  
  404. ================================================================================
  405. SUB mreset(ins%,nb%)
  406.  
  407. Resets the installed mouse driver (if any) and returns
  408. status and number of mouse buttons.
  409.  
  410. ins%: Returns 0 if no mouse driver installed, or
  411.       1 if mouse driver is installed.
  412. nb%: Returns number of mouse buttons (if ins%<>0)
  413.  
  414. Example: mreset ins%,nb%
  415.          if ins%=1 then print "Mouse Installed"
  416.  
  417. ================================================================================
  418. SUB mrestorestate(bf$)
  419.  
  420. Restores the state of the mouse driver previously saved with
  421. MSAVESTATE.
  422.  
  423. bf$: Set to buffer string retrieved with MSAVESTATE$
  424.  
  425. Example: mrestorestate bf$
  426.  
  427. ================================================================================
  428. FUNCTION mrightbutton
  429.  
  430. Returns 1 if right mouse button pressed, 0 if not.
  431.  
  432. Example: print mrightbutton
  433.  
  434. ================================================================================
  435. FUNCTION mrpresses
  436.  
  437. Returns number of times right mouse button was pressed
  438. since this function was last called.
  439.  
  440. Example: sleep 5:print mrpresses
  441.  
  442. ================================================================================
  443. FUNCTION mrreleases
  444.  
  445. Returns number of times right mouse button was released
  446. since this function was last called.
  447.  
  448. Example: sleep 5:print mrreleases
  449.  
  450. ================================================================================
  451. FUNCTION msavestate$
  452.  
  453. Saves the current state of the mouse driver (mouse position,
  454. type of cursor, etc etc).  Use MRESTORESTATE to restore.
  455.  
  456. msavestate$: Returns state buffer (save this string to
  457.              use with MRESTORESTATE later).  If insufficient
  458.              memory available, will return "".
  459.  
  460. Example: bf$ = msavestate$  'if bf$<>"", state is saved.
  461.  
  462. ================================================================================
  463. SUB msetaltroutine(mask%,sg??,ofs??)
  464.  
  465. Sets a pointer to an alternate mouse-handler routine and
  466. defines a condition mask that will determine when the
  467. mouse driver calls that routine (see MSETROUTINE).  Up to
  468. three handlers can be defined by separate calls to this
  469. routine.  When the alternate routine is called, it's passed
  470. the same values given for MSETROUTINE.  Note that the "bit
  471. mask" differs from the one given in MSETROUTINE:
  472.  
  473. mask%: Set to condition mask for alternate routine:
  474. Bit 0: Call if mouse moves
  475. Bit 1: Call if left button pressed
  476. Bit 2: Call if left button released
  477. Bit 3: Call if right button pressed
  478. Bit 4: Call if right button released
  479. Bit 5: Call if shift key pressed during event
  480. Bit 6: Call if ctrl key pressed during event
  481. Bit 7: Call if alt key pressed during event.
  482. sg??: Set to segment of your mouse handler routine
  483. ofs??: Set to offset of your mouse handler routine
  484.  
  485. Example: msetaltroutine 1,sg??,o??
  486.  
  487. ================================================================================
  488. SUB msetdst(mps%)
  489.  
  490. Sets a "double-speed threshold" for the mouse cursor in mickeys
  491. per second.  If mouse moves faster than this, the cursor's on-
  492. screen motion is doubled.
  493.  
  494. mps%: Set to mickeys per second threshold value (0=default 64)
  495.  
  496. Example: msetdst 0  'Reset to default
  497.  
  498. ================================================================================
  499. SUB msetlanguage(l%)
  500.  
  501. Sets the international version of the mouse driver to
  502. display messages in a certain language.  U.S. driver
  503. versions ignore this call.
  504.  
  505. l%: Set to language desired:
  506. 0 = English
  507. 1 = French
  508. 2 = Dutch
  509. 3 = German
  510. 4 = Swedish
  511. 5 = Finnish
  512. 6 = Spanish
  513. 7 = Portuguese
  514. 8 = Italian
  515.  
  516. Example: msetlanguage 0  'Set to English
  517.  
  518. ================================================================================
  519. SUB msetpage(pg%)
  520.  
  521. Sets the page the mouse cursor will be displayed on.
  522.  
  523. pg%: Set to page number (in text modes, 0-3 CGA, 0-7 EGA/VGA)
  524.  
  525. Example: msetpage 0
  526.  
  527. ================================================================================
  528. SUB msetpen
  529.  
  530. Turns mouse light-pen emulation mode ON.
  531.  
  532. Example: call msetpen
  533.  
  534. ================================================================================
  535. SUB msetpos(y%,x%)
  536.  
  537. Sets the position of the mouse cursor on the screen in
  538. text mode.  For graphics modes, use MGRAPHSETPOS instead.
  539.  
  540. y%: Set to new y coordinate desired (1-25)
  541. x%: Set to new x coordinate desired (1-80)
  542.  
  543. Example: msetpos 15,1
  544.  
  545. ================================================================================
  546. SUB msetroutine(mask%,sg??,ofs??)
  547.  
  548. Sets a pointer to your mouse-handler routine and defines
  549. a condition mask that will determine when the mouse driver
  550. will call your routine.  The call made is far, and your
  551. routine should terminate with an RETF instruction.  When
  552. your routine is called, it's passed the following values:
  553. AX=condition mask (same as call mask)
  554. BX=button state,CX=cursor column,DX=cursor row
  555. SI=horizontal mickey count,DI=vertical mickey count
  556.  
  557. mask%: Set to condition mask:
  558. Bit 0: Call if mouse moves
  559. Bit 1: Call if left button pressed
  560. Bit 2: Call if left button released
  561. Bit 3: Call if right button pressed
  562. Bit 4: Call if right button released
  563. Bit 5: Call if middle button pressed
  564. Bit 6: Call if middle button released
  565. sg??: Set to segment of your mouse handler routine
  566. ofs??: Set to offset of your mouse handler routine
  567.  
  568. Example: msetroutine m%,s??,o??
  569.  
  570. ================================================================================
  571. SUB msetspeed(nh%,nv%)
  572.  
  573. Sets the mickey to pixel ratio for the mouse driver.
  574. The larger the numbers, the slower the mouse cursor will
  575. move in relation to mouse movements (text and graphics)
  576.  
  577. nh%: Set to number of mickeys per 8 pixels horizontally
  578.      (defaults to 8)
  579. nv%: Set to number of mickeys per 8 pixels vertically
  580.      (defaults to 16)
  581.  
  582. Example: msetspeed 64,64  'Very slow mouse movements
  583.          msetspeed 2,2    'Extremely fast mouse movements
  584.  
  585. ================================================================================
  586. SUB mshow
  587.  
  588. Increments the internal mouse cursor flag, showing the
  589. mouse if the flag is at zero.  Multiple calls to mshow will
  590. require multiple calls to MHIDE to hide the cursor again.  The
  591. mouse cursor is visible when the internal flag is zero or above,
  592. and invisible when the flag is below zero.
  593.  
  594. Example: mshow [or] call mshow
  595.  
  596. ================================================================================
  597. SUB mtextdefine(tpe%,a%,b%)
  598.  
  599. Sets the text-mode mouse cursor to the hardware or
  600. software cursor, and defines start/end scan lines for
  601. the hardware cursor or screen/cursor masks for the software
  602. cursor.  Default is software cursor (if this routine is
  603. not called).
  604.  
  605. tpe%: Set to 0 for software cursor, or 1 for hardware cursor
  606. a%: Set to screen mask for software cursor, or start scan
  607.     line for hardware cursor (according to setting of tpe%).
  608. b%: Set to cursor mask for software cursor, or end scan
  609.     line for hardware cursor (according to setting of tpe%)
  610.  
  611. Example: mtextdefine 1,1,7 'Set hardware block cursor
  612.  
  613. ================================================================================
  614. SUB mxchgroutine(mask%,sg??,ofs??)
  615.  
  616. Exchanges a new mouse-handler routine for the current one
  617. (see MSETROUTINE)
  618.  
  619. mask%: Set to condition mask (see MSETROUTINE).  Condition
  620.        mask of old routine is returned in mask%.
  621. sg??: Set to segment of new handler.  Segment of old handler
  622.       is returned in sg??.
  623. ofs??: Set to offset of new handler.  Offset of old handler
  624.        is returned in ofs??.
  625.  
  626. Example: mxchgroutine mask%,sg??,ofs??
  627.  
  628. ================================================================================
  629. SUB mxgraphrange(min%,max%)
  630.  
  631. Defines the minimum and maximum allowable screen range for
  632. the mouse cursor in graphics modes, thus defining a "border"
  633. area at the left and right of the screen that the mouse
  634. cursor cannot move into.  For text mode, use MXRANGE.
  635.  
  636. min%: Set to minimum x position
  637. max%: Set to maximum x position
  638.  
  639. Example: mxgraphrange 50,100
  640.  
  641. ================================================================================
  642. SUB mxrange(min%,max%)
  643.  
  644. Defines the minimum and maximum allowable screen range
  645. for the mouse cursor in text mode, thus defining a "border"
  646. area at the left and right of the screen that the mouse cursor
  647. cannot move into.  For graphics modes, use MXGRAPHRANGE
  648.  
  649. min%: Set to minimum x position (column) (1-80)
  650. max%: Set to maximum x position (column) (1-80)
  651.  
  652. Example: mxrange 5,75 ' Restricts mouse cursor to columns 5-75
  653.  
  654. ================================================================================
  655. SUB mygraphrange(min%,max%)
  656.  
  657. Defines the minimum and maximum allowable screen range for
  658. the mouse cursor in graphics modes, thus defining a "border"
  659. area at the top and bottom of the screen that the mouse
  660. cursor cannot move into.  For text mode, use MYRANGE.
  661.  
  662. min%: Set to minimum y position
  663. max%: Set to maximum y position
  664.  
  665. Example: mygraphrange 10,50
  666.  
  667. ================================================================================
  668. SUB myrange(min%,max%)
  669.  
  670. Defines the minimum and maximum allowable screen range for the
  671. mouse cursor in text mode, thus defining a "border" area at the
  672. top and bottom of the screen that the mouse cursor cannot move
  673. into.  For graphics modes, use MYGRAPHRANGE
  674.  
  675. min%: Set to minimum y position (row) (1-25)
  676. max%: Set to maximum y position (row) (1-25)
  677.  
  678. Example: myrange 3,22 'Restricts mouse cursor to rows 3-22
  679.  
  680.